import CommonTools.AutoDeleter;
import CommonTools.ClientImpl;
import CommonTools.DesignTools;
import CommonTools.RunServer;
import CommonTools.Settings;

/*
 *  Лицензия MIT
 * 
 *  Copyright 2011 Salnikov Aleksey.
 * 
 *  Данная лицензия разрешает, безвозмездно, лицам, получившим копию данного программного обеспечения
 *  и сопутствующей документации (в дальнейшем именуемыми "Программное Обеспечение"),
 *  использовать Программное Обеспечение без ограничений, включая неограниченное право
 *  на использование, копирование, изменение, объединение, публикацию, распространение,
 *  сублицензирование и/или продажу копий Программного Обеспечения, также как и лицам,
 *  которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий:
 * 
 *  Вышеупомянутый копирайт и данные условия должны быть включены во все копии или значимые
 *  части данного Программного Обеспечения.
 * 
 *  ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ ЛЮБОГО ВИДА ГАРАНТИЙ,
 *  ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ,
 *  СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И НЕНАРУШЕНИЯ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ
 *  НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ ТРЕБОВАНИЙ
 *  ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ
 *  С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
 *  ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
 */
import CommonTools.SettingsWindow;


/**
 * Главный класс серверной части.
 * Отвечает за запуск сервера
 *
 * @author Salnikov Aleksey
 */
import java.awt.AWTException;


import java.rmi.registry.Registry;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.UnsupportedLookAndFeelException;

public class Server
{

    protected String port;
    protected static final String SERVER_NAME = "ServerOrdo";
    protected static final String CLIENT_SERVER_NAME = "ClientOrdo";
    private Registry registry;
    private ClientImpl client;

    public Server() throws Exception
    {
        port = Settings.getParametrValue("port");
        runServer();
    }

    protected final void runServer() throws Exception
    {
        this.run();
        createGUI();

        //Запускаем чекера
        AutoDeleter ad = new AutoDeleter();
        ad.run();
    }

    public void run() throws Exception
    {
        try {
            RunServer runs = new RunServer();
            runs.runServer();
        } catch (Exception ex) {
            DesignTools.showMessage("Сервер не запущен", "Не удается запустить сервер, возможно, порт занят другой программой", false);
        }
    }

    public void createGUI()
    {
        try {
            try {
                SettingsWindow sw = new SettingsWindow();
            } catch (AWTException ex) {
            }
        } catch (ClassNotFoundException ex) {
        } catch (InstantiationException ex) {
        } catch (IllegalAccessException ex) {
        } catch (UnsupportedLookAndFeelException ex) {
        }
    }

    public static void main(String args[]) throws Exception
    {
        Server s = new Server();
    }
    
}
